home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / oper_sys / deltablu / cnstrnts.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-08-17  |  1.3 KB  |  57 lines

  1. /***************************************************************************
  2.  Constraints.h
  3.  
  4.     Constraint, variable, and strength data definitions for DeltaBlue.
  5.  
  6. ****************************************************************************/
  7.  
  8. typedef struct {
  9.   long        value;
  10.   List        constraints;
  11.   void *    determinedBy; /* Constraint */
  12.   long        mark;
  13.   char        walkStrength;
  14.   Boolean    stay;
  15.   char        name[10];
  16. } *Variable, VariableStruct;
  17.  
  18. typedef struct {
  19.   Proc        execute;
  20.   Boolean    inputFlag;
  21.   char        strength;
  22.   char        whichMethod;
  23.   char        methodCount;
  24.   char        varCount;
  25.   char        methodOuts[7];
  26.   Variable    variables[1];
  27. } *Constraint, ConstraintStruct;
  28.  
  29. /* Variables */
  30.   Variable    Variable_Create(char *, long);
  31.   Variable    Variable_CreateConstant(char *, long);
  32.   void        Variable_Destroy(Variable);
  33.   void        Variable_Print(Variable);
  34.  
  35. /* Constraints */
  36.   Constraint    Constraint_Create(int, int);
  37.   void        Constraint_Destroy(Constraint);
  38.   void        Constraint_Print(Constraint);
  39.  
  40. /* Miscellaneous */
  41.   void        ExecutePlan(List);
  42.   char*     StrengthString(int);
  43.  
  44. /* Strength Constants */
  45. #define S_required        0
  46. #define S_strongPreferred    1
  47. #define S_preferred        2
  48. #define S_strongDefault        3
  49. #define S_default        4
  50. #define S_weakDefault        5
  51. #define S_weakest        6
  52.  
  53. /* Other Constants and Macros */
  54. #define NO_METHOD    (-1)
  55. #define SATISFIED(c)    ((c)->whichMethod != NO_METHOD)
  56. #define Weaker(a,b)    (a > b)
  57.